/**
 * 别名路径解析器
 */
const path = require("path")

/**
 * 解析别名路径
 * @param {string} importPath - 导入路径
 * @param {Object} aliasConfig - 别名配置
 * @param {string} projectRoot - 项目根目录
 * @returns {string|null} 解析后的路径，无法解析则返回null
 */
function resolveAliasPath(importPath, aliasConfig, projectRoot) {
  // 检查是否匹配任何别名
  for (const [alias, aliasPath] of Object.entries(aliasConfig)) {
    if (importPath.startsWith(alias)) {
      // 替换别名部分为实际路径
      const relativePath = importPath.substring(alias.length)
      const resolvedPath = path.join(
        path.resolve(projectRoot, aliasPath),
        relativePath.startsWith("/") ? relativePath.substring(1) : relativePath
      )

      return resolvedPath
    }
  }

  return null
}

module.exports = {
  resolveAliasPath,
}
